Virtualization techniques achieve a virtual machine on a host operating system (OS). When a guest OS runs on the virtual machine, performance of application software running on the guest OS is considerably inferior to performance of equivalent application software running on the host OS. To this end, schemes for resolving performance degradation of application software running on a guest OS are being implemented in recent years.
One of main causes for degradation in performance of application software running on a guest OS is address translation for direct memory access (DMA). When it is necessary for application software running on a guest OS to access an input/output (I/O) device to perform an I/O operation, the guest OS requests the input/output device to perform a DMA operation so that the application software can perform the I/O operation. Although a memory area to be accessed by the I/O device needs to be specified using a physical address of a real information processing apparatus (hereinafter, “host physical address (HPA)”), the guest OS specifies the memory area out of consideration of the host physical address and uses a physical address of a virtual machine (hereinafter, “guest physical address (GPA)”).
To deal with this, a computer program, which is referred to as a hypervisor that implements a virtual machine, has conventionally translated a GPA into an HPA by means of software. However, this address translation has incurred overhead, thereby degrading performance of application software. To eliminate the overhead, techniques, such as DMA remapping and address translation service (ATS), are being employed. The DMA remapping is a technique that achieves high-speed translation of a GPA into an HPA by means of hardware in an I/O control device that controls I/O operations. The ATS is a technique that achieves translation of a GPA into an HPA in an I/O device (see “Intel Virtualization Technology”, (online), searched on Mar. 22, 2007, Internet <URL: http://www.intel.com/technology/itj/2006/v10i3/2-io/5-platform-hardware-support.htm>).
However, when an I/O control device is requested to handle a large number of I/O operations, address translation by DMA remapping disadvantageously increase a load placed on the I/O control device. This disadvantage may be reduced by employing ATS; however, address translation by ATS is disadvantageous in that it is necessary to adapt hardware and/or firmware of an I/O device to ATS. Put another way, ATS cannot be performed by using a conventional I/O device without modification.